热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux下使用Quagga搭建软路由-OSPFv2学习

一、背景在学习路由协议如OSPF协议时,需要进行一个实操的练习,若手里又没有核心交换机,怎么破?本文讲述了如何在Linux系统上搭建软路由环境,并使用OSPF路由协议完成路由表的

一、背景

在学习路由协议如OSPF协议时,需要进行一个实操的练习,若手里又没有核心交换机,怎么破?

本文讲述了如何在Linux系统上搭建软路由环境,并使用OSPF路由协议完成路由表的学习。

二、相关知识

2.1 Quagga

Quagga是一款开源路由软件套件,它可以用来将你的Linux设备变成一个功能完备的路由器,支持RIP,RIPNG,OSPFv2,OSPFv3,BGP等路由协议[1]。

2.2 OSPF

OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。
OSPF相关概念比较多,以下挑几个重要知识点进行说明。
LSA(Link-State Advertisement 是链接状态协议使用的一个分组,它包括有关邻居和通道成本的信息。 LSAs被路由器接收用于维护它们的路由选择表。
OSPF从报文的结构上划分,可以分为以下几种[2]:
  1. Hello报文(Hello Packet):周期性地发送,用于维护邻居关系以及DR/BDR选举;
  2. DD报文(Database Description Packet):用于两台路由器进行数据库同步,包含自己的LSDB(LSA集合)信息;
  3. LSR报文(Link State Request Packet):在交换DD报文后续,使用该报文向对方请求所需的LSA信息;
  4. LSU报文(Link State Update Packet):向对方发送所需的LSA信息集合。
  5. LSAck报文(Link State Acknowledgment Packet):用于对LSU报文进行确认。

另一个重要的知识点就是邻居建立过程,如下图所示:
对于图上的7种状态进行说明:
  1. Down:在Down状态下,OSPF进程还没有与任何邻居交换信息。OSPF在等待进入Init状态;
  2. Init:OSPF路由器以固定的时间间隔(缺省10s)发送Hello分组,以便与邻居路由器建立特殊的关系;
  3. Two-Way:每台OSPF路由器都使用分组试图与同一个IP网络中的所有邻居路由器建立双向状态或双向通信。Hello分组中含有发送者已知的OSPF邻居列表。当路由器看到它自己出现在一个邻居路由器的Hello分组中时,它就进入了双向状态;
  4. ExStart:当路由器与它的邻居进入到ExStart状态后,他们之间的会话就表征为一种毗邻关系,但这时路由器还没有变成全毗邻状态。ExStart状态是使用DD(数据库描述)分组建立的,两个路由器用Hello分组协商出“主从关系”;
  5. Exchange:在交换状态下,邻居路由器使用类型2的DD分组来互相发送它们的链路状态信息,也就是说路由器相互描述它们的链路状态数据库。路由器将它们所学到的信息与其现存的链路状态数据库进行比较,并且单独确认每个DD分组,如果任何一台路由器接收到不在其数据库中的链路信息,该路由器就向其邻居请求有关该链路的完整更新信息。完整的路由信息在“Loading”状态下被交换;
  6. Loading:在相互描述过各自的链路状态数据库之后,路由器可以用LSR(链路状态请求)分组来请求更完整的信息。当路由器接收到一个LSR的时候,它会用一个LSU(链路状态更新)分组进行回应。这些LSU分组含有确切的LSA,而LSA是链路状态型路由选择协议的核心,LSU分组由LSAck分组所确认;
  7. Full Adjacency:加载状态结束之后,路由器就进入全毗邻状态。每台路由器都保存着一张毗邻路由器列表,它就是称为毗邻数据库。

三、配置过程

配置的拓扑如下,使用两个CentOS 分别模拟 Rt170、Rt171:


3.1 Quagga安装

CentOS下可以直接使用yum install quagga进行安装,也可以源码安装,但是要注意第三方库的依赖。
安装完成后,需要在 /etc/quagga 把 zebra.conf、vtysh.conf、ospfd.conf 拷贝出来。
启动命令使用 service zebra start、service ospfd start进行启动,若对端收不到报文,可能还需要关闭防火墙 iptables。

3.2 OSPF配置

进入vtysh进行初始配置,设置日志文件 /var/log/quagga/quagga.log
配置接口 分别对应拓扑


设置OSPF ,router ospf、route-id、network 192.168.50.0/24 area 0

配置成功后,查看邻居信息,可以看见状态分别从 init -> two-way ->... full 进行切换,最终可以看出主从关系

查看路由表,发现可以学习到各自对端的路由表信息

同时,使用 Wireshark 抓包,可以验证报文交换的过程


参考文章:
[1] Quagga安装 http://os.51cto.com/art/201410/453623.html
[2] OSPF报文格式 鸿鹄论坛
[3] OSPF邻居关系建立过程详解 http://blog.sina.com.cn/s/blog_77f868250101jbcb.html

推荐阅读
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了如何使用双路由器有线搭建一个小型的局域网网络,解决家庭或公司多个网络设备无法同时上网的问题。详细讲解了两种简单快速的组网方式,并提供了具体的设置步骤和注意事项。 ... [详细]
  • 本文详细解析了vlan接口类型和划分的相关知识,包括access、trunk和hybrid接口类型的特点和功能,以及它们在数据包发送和接收过程中的处理方式。同时介绍了pvid的作用和使用方法,以及trunk接口在发送数据包时的处理规则。最后,还介绍了如何使所有vlan生效的方法。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 华为和阿里VPN
    阿里云创建VPN1、 创建VPN网关2、 填写名称,选择对应的VPC,不指定交换机,选择带宽3、购买的是IPSEC-VPN不开启SSLVPN,点击立即购买 4、 创建客户网关  ... [详细]
  • RabbitMq之发布确认高级部分1.为什么会需要发布确认高级部分?在生产环境中由于一些不明原因,导致rabbitmq重启,在RabbitMQ重启期间生产者消息投递失败,导致消息丢 ... [详细]
  • 交换机配置:intg100unshintvlani1ipadd192.168.56.177qstelseuser-iv4authaaaproinsshupl3qsshuserpyt ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • 用户视图(查看运行状态或其他参数)系统视图(配置设备的系统参数)system-viewEntersystemview,returnuservi ... [详细]
  • CISCO ASA防火墙Failover+multiple context详细部署By 年糕泰迪[操作系统入门]
    一.文章概述本文主要就CISCOASA防火墙的高可用和扩张性进行阐述和部署。再cisco防火墙系列中主要有3种技术来实现高可用和扩张性。分别是Failover,multiplese ... [详细]
  • IP、ARP、TCP、UDP、ICMP、DNS、路由协议、DHCP协议的缺陷,容易受到的攻击,以及防御措施1、IP协议1.1、介绍: ... [详细]
  • 配置交换机监控端口
    实验环境实验目标1.配置监视端口监视2.端口12 ... [详细]
author-avatar
乐檬
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有